<?php

/**
 * @file hidden.php
 * @brief Clase para generar un campo oculto (hidden)
 * @author DyrTechnologies
 * @version V 1.0
 * @date Wed Oct 03 2007
 *
 *  Part of the CEFIRO dynamic web framework project
 *
 *  Copyright (C) 2007  Dyr technologies http://dyrtech.com.ve
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

/**
 * @class Clase hidden
 */

require_once(CEF_INPUT);

$hidden_instance = 0;

class hidden extends input {

	/**
	 * @brief Constructor por omision y parametrico de la clase aprovechamos el hecho de que cada atributo tiene un valor por omision predefinido para no rehacer el constructor
	 *
	 * @param string $_value
	 * @param input_opt $_opt
	 * @param string $_name
	 * @return hidden La instancia de la clase
	 */
	public function hidden($_name='__hidden', $_value='', $_opt = ''){

		/**
		 * @brief Se asignan los valores a los atributos de la clase hidden segun vengan dados al llamar al constructor de la misma notar que existen valores por omision para cada atributo
		 */
		$this->set_type();
		$this->set_value($_value);

		/**
		 * @brief $hidden_instance es una variable para incrementar el numero de hiddens existentes
		 */
		global $hidden_instance;
		$hidden_instance++;

		/**
		 * @brief El nombre del widget es el tipo con el numero de la instancia que representa o el nombre pasado por omision en caso contrario
		 */

		if($_name!="__hidden")
		$this->set_name($_name);
		else
		$this->set_name("hidden".$hidden_instance);

		/**
		 * @brief Si las opciones del campo no estan ajustadas lo hacemos explicitamente una instancia de hidden_opt
		 */
		if($_opt=='')
		$_opt = new input_opt();
		$this->set_opt($_opt);
	}

	/**
	 * @brief Las funciones set_VAR ajustan las variables de la instancia; tipo (type)
	 */

	public function set_type(){
		input::set_type('hidden');
	}

	/**
	 * @brief Devuelve el hidden como una cadena con sus parametros
	 *
	 * @return string $retval
	 */
	public function get_hidden(){
		return $this->get_input();
	}

	/**
	 * @brief Asigna el hidden a la variable $smarty para su renderizacion
	 *
	 */
	public function display_hidden($fetch = false){
	  if($fetch == true)
		  return $this->display_input($fetch);
		else {
		  $this->display_input();
		  return 0;
		}
	}
}

?>